package com.smartboot.plus.vo;

import java.io.Serializable;

public class MqttJvmCpuVO implements Serializable {

	/**
	 * 堆内存使用率，表示当前已使用的堆内存占堆内存最大值的比例。
	 * 例如，0.65 表示堆内存使用了 65%。
	 */
	private double heapUsagePercentageDouble;

	/**
	 * 堆内存最大值，即 JVM 堆内存的最大容量。
	 * 通常由 JVM 启动参数（如 -Xmx）指定，单位可以是字节（B）、千字节（KB）、兆字节（MB）或吉字节（GB）。
	 */
	private String totalMemoryLimit;

	/**
	 * 堆内存已使用值，表示当前 JVM 已使用的堆内存量。
	 * 单位通常与 totalMemoryLimit 一致。
	 */
	private String heapMemoryUsed;

	/**
	 * 非堆内存已使用值，表示当前 JVM 已使用的非堆内存量。
	 * 非堆内存主要用于存储类的元数据、字符串常量池等。
	 */
	private String nonHeapMemoryUsed;

	/**
	 * JVM 的版本信息，例如 "1.8.0_231"，用于标识运行环境的版本。
	 */
	private String vmVersion;

	/**
	 * 当前 JVM 中的线程数，表示正在运行的线程总数。
	 */
	private int threadCount;

	/**
	 * 物理内存总量，表示系统中可用的物理内存量。
	 * 单位通常为字节（B）、千字节（KB）、兆字节（MB）或吉字节（GB）。
	 */
	private String totalPhysicalMemory;

	/**
	 * JVM 进程的 CPU 使用率，表示当前 JVM 进程占用的 CPU 时间占总 CPU 时间的比例。
	 * 以小数形式存储，例如，0.5 表示 JVM 进程占用了 50% 的 CPU 时间。
	 */
	private double processCpuLoadDouble;

	/**
	 * 系统 CPU 使用率，表示整个系统的 CPU 使用情况。
	 * 以小数形式存储，例如，0.75 表示系统 CPU 使用率为 75%。
	 */
	private double systemCpuLoadDouble;

	/**
	 * CPU 核心数，表示系统中可用的 CPU 核心数量。
	 */
	private int cpuCount;

	/**
	 * CPU 架构，例如 "x86_64" 或 "arm64"，用于标识系统的 CPU 架构类型。
	 */
	private String cpuArchitecture;

	// Getter 和 Setter 方法
	public double getHeapUsagePercentageDouble() {
		return heapUsagePercentageDouble;
	}

	public void setHeapUsagePercentageDouble(double heapUsagePercentageDouble) {
		this.heapUsagePercentageDouble = heapUsagePercentageDouble;
	}



	public String getTotalMemoryLimit() {
		return totalMemoryLimit;
	}

	public void setTotalMemoryLimit(String totalMemoryLimit) {
		this.totalMemoryLimit = totalMemoryLimit;
	}


	public String getVmVersion() {
		return vmVersion;
	}

	public void setVmVersion(String vmVersion) {
		this.vmVersion = vmVersion;
	}

	public int getThreadCount() {
		return threadCount;
	}

	public void setThreadCount(int threadCount) {
		this.threadCount = threadCount;
	}

	public String getHeapMemoryUsed() {
		return heapMemoryUsed;
	}

	public void setHeapMemoryUsed(String heapMemoryUsed) {
		this.heapMemoryUsed = heapMemoryUsed;
	}

	public String getNonHeapMemoryUsed() {
		return nonHeapMemoryUsed;
	}

	public void setNonHeapMemoryUsed(String nonHeapMemoryUsed) {
		this.nonHeapMemoryUsed = nonHeapMemoryUsed;
	}

	public String getTotalPhysicalMemory() {
		return totalPhysicalMemory;
	}

	public void setTotalPhysicalMemory(String totalPhysicalMemory) {
		this.totalPhysicalMemory = totalPhysicalMemory;
	}

	public double getProcessCpuLoadDouble() {
		return processCpuLoadDouble;
	}

	public void setProcessCpuLoadDouble(double processCpuLoadDouble) {
		this.processCpuLoadDouble = processCpuLoadDouble;
	}

	public double getSystemCpuLoadDouble() {
		return systemCpuLoadDouble;
	}

	public void setSystemCpuLoadDouble(double systemCpuLoadDouble) {
		this.systemCpuLoadDouble = systemCpuLoadDouble;
	}

	public int getCpuCount() {
		return cpuCount;
	}

	public void setCpuCount(int cpuCount) {
		this.cpuCount = cpuCount;
	}

	public String getCpuArchitecture() {
		return cpuArchitecture;
	}

	public void setCpuArchitecture(String cpuArchitecture) {
		this.cpuArchitecture = cpuArchitecture;
	}
}
